package org.sage.sdk.dada.order.entity;

import org.sage.sdk.dada.infrastructure.common.attributes.Callback;
import org.sage.sdk.dada.infrastructure.common.attributes.CityCode;
import org.sage.sdk.dada.infrastructure.common.attributes.IsPrepay;
import org.sage.sdk.dada.infrastructure.common.attributes.ShopNo;
import org.sage.sdk.dada.infrastructure.utils.GetBodyUtil;
import org.sage.sdk.dada.order.aggregate.Cargo;
import org.sage.sdk.dada.order.aggregate.Order;
import org.sage.sdk.dada.order.aggregate.Origin;
import org.sage.sdk.dada.order.aggregate.Receiver;

/**
 * 订单预发布
 * <p>
 * 订单预发布包含两个接口，接口简介如下：
 * 1、查询订单运费接口，接口URL地址：/api/order/queryDeliverFee。
 * 2、查询运费后发单接口，接口URL地址：/api/order/addAfterQuery。
 * <p>
 * 1.预发布订单的操作流程是：使用【查询订单运费接口】获取平台订单编号，调用【查询运费后发单接口】即可发布订单。
 * 2.【查询订单运费接口】经纬度为非必传参数，如果不传经纬度，系统会自动在city_code所在城市解析收货地址，所以此时接口中的city_code一定要传正确。
 *
 * @author 周广明
 * @version v1 2019/12/10 下午6:05
 */
public class OrderPreRelease extends Order {

    String url;

    @Override
    public String getUrl() {
        return this.url;
    }

    @Override
    public String getBody() {
        return GetBodyUtil.toJsonStr(this);
    }

    public OrderPreRelease(String url, ShopNo shopNo, Origin origin, CityCode cityCode, Cargo cargo,
                           IsPrepay isPrepay, Receiver receiver, Callback callback) {
        super(shopNo, origin, cityCode, cargo, isPrepay, receiver, callback);
        this.url = url;
    }
}
